App({
  globalData: {
    imgUrl: "https://xcx.yhzip.com/api.php",
    user: wx.getStorageSync('user') || {}
  },
  onLaunch: function () {
    // 自己封装的方法
    this._promiseifyWxApi();
  },
  // 封装api
  _promiseifyWxApi() {
    // 发送异步请求
    wx.requestAsync = function (params) {
      let { url, data, method, header } = params;
      return new Promise((resolve, reject) => {
        wx.showLoading({
          title: "正在获取数据...",
        });
        // 对data进行 兼容：如果没有值，重置成空对象
        data = data || {};
        // 统一处理参数:
        // 1. 对参数中值为null undefined进行过滤
        // 2. 统一参数一些公共参数[接口可能是针对多端都使用的，所以需要在每个端调用接口时加上参数来区分]
        for (let prop in data) {
          if (data[prop] === undefined || data[prop] === null) {
            delete data[prop];
          }
        }
        // 对当前接口全部加上渠道标识 channel字段
        // data.channel = "miniapp";
        wx.request({
          url: "https://xcx.yhzip.com/api.php/" + url,
          method: method || "POST",
          data,
          header: header || {
            "content-type": "application/x-www-form-urlencoded",
          },
          success: (res) => {
            // 网络正常返回，但是后台返回的数据未必是正常的
            // 200 204 206 301 302 304 305 400 404 403 405 500 501 502 503 504
            // 网络返回是正常 再看返回的接口业务状态码
            // console.log("res", res);

            if (res.statusCode == 200 && res.data) {
              // 业务逻辑状态码也是正常的 200
              if (res.data.stu == 1) {
                resolve(res.data);
              } else if (res.data.stu == 0) {
                // wx.showToast({
                //   title: "暂无数据",
                //   icon: "none",
                // });
                resolve(res.data);
              } else {
                wx.showToast({
                  title: "接口不存在",
                  icon: "none",
                });
                reject(res);
              }
            }
          },
          fail: (err) => {
            reject(err);
          },
          complete: () => {
            wx.hideLoading();
          },
        });
      });
    };
  },
});
